লারাভেল (Laravel) একটি শক্তিশালী PHP ফ্রেমওয়ার্ক যা অনেক দরকারী টুল এবং ফিচার সরবরাহ করে। তার মধ্যে একটি গুরুত্বপূর্ণ ফিচার হল লারাভেল কিউ (Laravel Queue)। কিউ সিস্টেম (Queue System) লারাভেল অ্যাপ্লিকেশনে ব্যাকগ্রাউন্ডে দীর্ঘ-running কাজ যেমন ইমেইল পাঠানো, ভিডিও প্রসেসিং বা ফাইল আপলোডের কাজ সম্পাদন করতে সাহায্য করে। কিউ ব্যবহার করে আপনি ওয়েব অ্যাপ্লিকেশনগুলোকে আরও দ্রুত এবং ব্যবহারকারী-বান্ধব করতে পারেন।
কিউ একটি টাস্ক ম্যানেজমেন্ট সিস্টেম, যা অ্যাসিনক্রোনাস (Asynchronous) কাজ সম্পাদন করতে ব্যবহৃত হয়। অর্থাৎ, আপনি যখন একটি বড় কাজ শুরু করেন, যেমন ইমেইল পাঠানো বা রিপোর্ট জেনারেট করা, তখন সেই কাজটি ওয়েব অ্যাপ্লিকেশনটির ব্যবহারকারী ইন্টারফেসের সাথে বাধাগ্রস্ত না হয়ে ব্যাকগ্রাউন্ডে সম্পন্ন হয়। এর ফলে ব্যবহারকারী দ্রুত ফলাফল পায় এবং অ্যাপ্লিকেশনটি দ্রুত প্রতিক্রিয়া জানাতে সক্ষম হয়।
লারাভেল কিউ সিস্টেমের মাধ্যমে, আপনি কাজগুলোকে কিউ (Queue) তে পাঠাতে পারেন এবং সেগুলো পর্যায়ক্রমে প্রক্রিয়াজাত করতে পারেন। কিউ ব্যবস্থাপনা লারাভেল ফ্রেমওয়ার্কের অন্তর্নিহিত সুবিধা যা অ্যাসিনক্রোনাসভাবে কাজগুলোর সময় ব্যাবস্থাপনা এবং দ্রুত কার্যকরী হতে সহায়তা করে।
লারাভেলে কিউ কাজ তৈরি করতে php artisan make:job
কমান্ড ব্যবহার করা হয়। উদাহরণস্বরূপ, যদি আপনি একটি ইমেইল পাঠানোর কাজ কিউতে পাঠাতে চান, তাহলে কমান্ডটি হবে:
php artisan make:job SendWelcomeEmail
এই কমান্ডটি app/Jobs
ডিরেক্টরিতে SendWelcomeEmail
নামক একটি নতুন জব (Job) ক্লাস তৈরি করবে।
এখন, যখন আপনি একটি কাজ কিউতে পাঠাতে চান, আপনি dispatch()
ফ্যাকেড ব্যবহার করবেন। উদাহরণস্বরূপ:
use App\Jobs\SendWelcomeEmail;
class RegisterController extends Controller
{
public function register(Request $request)
{
// ব্যবহারকারীর সাইন-আপ শেষে কিউতে ইমেইল পাঠানো
SendWelcomeEmail::dispatch($user);
}
}
এখানে SendWelcomeEmail::dispatch($user)
কমান্ডটি কিউতে কাজটি পাঠাবে, এবং লারাভেল তখন সেই কাজ ব্যাকগ্রাউন্ডে প্রক্রিয়াজাত করবে।
কিউ কাজ চালানোর জন্য আপনাকে একটি কিউ ড্রাইভার কনফিগার করতে হবে। লারাভেল কয়েকটি কিউ ড্রাইভার সমর্থন করে যেমন: database, redis, sqs ইত্যাদি।
php artisan queue:work
এই কমান্ডটি কিউর কাজগুলো প্রসেস করতে চালু করবে এবং কিউয়ের কাজগুলি একের পর এক সম্পন্ন হবে।
লারাভেলে কিউ সিস্টেমে বিভিন্ন ড্রাইভার ব্যবহার করা যায়। কিউ ড্রাইভার কনফিগার করার জন্য .env
ফাইলে নিচের মত সেটিংস করা হয়:
QUEUE_CONNECTION=database
এখানে database
কিউ ড্রাইভার ব্যবহার করা হয়েছে, তবে আপনি এখানে redis
, sqs
, বা অন্য কোন ড্রাইভারও ব্যবহার করতে পারেন।
লারাভেল কিউ সিস্টেমটি অ্যাপ্লিকেশনটির পারফরমেন্স বৃদ্ধি করতে সাহায্য করে এবং ব্যাকগ্রাউন্ডে কাজগুলো প্রক্রিয়াজাত করার মাধ্যমে ব্যবহারকারীর অভিজ্ঞতাকে আরও উন্নত করে। এটি আধুনিক অ্যাপ্লিকেশন ডেভেলপমেন্টের একটি গুরুত্বপূর্ণ অংশ।
Read more